# 第 8 章 插件系统：五个市场、三层作用域与供应链

专家是插件，但插件远不止专家。第 5 章的系统提示词模板装在「内置市场」里，文档处理能力来自「官方市场」，团队协作件来自「Teams 市场」——WorkBuddy 的一半能力是以插件形式存在的。这一章把插件系统整体摊开：市场怎么分发、安装怎么登记、插件能往你的对话里塞什么。

这一章的最后一个词是「供应链」。插件机制给了第三方进入你请求上下文的通道，能力与风险同源。读完本章，你应能看懂插件目录的三件套登记结构，说出五个市场各自的定位，理解插件的四类注入物，并建立装插件前的评估习惯。

## 8.1 三件套：登记、注册表、开关

WorkBuddy 的插件管理用三个文件协作，全在 `~/.workbuddy/plugins/` 下。

**安装清单 `installed_plugins.json`**：记录装了什么。每个条目的键名是「插件名@市场名」，值里有安装路径、版本、安装时间，还有一个值得注意的字段——`scope: "user"`。作用域字段的存在暗示插件可以装在不同层级（官方工程复盘明确说了三层：团队、项目、个人），用户级只是其中一层。

**市场注册表 `known_marketplaces.json`**：记录从哪装。本机注册的市场信息里能看到完整分发链路：市场以压缩包形式从官方下载域名分发，支持自动更新，包内一份清单列出市场里的全部插件及其技能路径。

**总开关 `settings.json` 的 `enabledPlugins`**：装了不等于启用。每个插件一行布尔值，你在界面上点开的每个开关，落盘就是这行 true 或 false。

三件套的分工是干净的注册-配置分离：市场注册表管「货源」，安装清单管「库存」，设置文件管「通电」。排查插件问题时按这个顺序查：先看开关，再看安装，最后看市场。

## 8.2 五个市场：一次生态考古

本机 5.3.13 实测有五个市场目录，名字本身就是一份生态地图：

| 市场 | 定位 | 本机样本 |
|-|-|-|
| codebuddy-plugins-official | 开发者官方插件市场 | 浏览器自动化、文档处理、LSP 语言服务、敏捷工作流 |
| cb_teams_marketplace | 团队协作市场 | 内部通讯、文档技能、财务数据 |
| workbuddy-builtin | WorkBuddy 内置 | 提示词模板、腾讯文档套件、支付、记忆片段 |
| experts | 专家市场 | 资讯专家、视频生成专家 |
| nowledge-community | 社区市场 | 知识管理类 |

注意前两个市场的名字：CodeBuddy 是腾讯的开发者工具品牌。WorkBuddy 的插件格式（`.codebuddy-plugin` 清单目录）、技能市场格式（`.codebuddy-skill`）、分发域名全部复用 CodeBuddy 体系——**WorkBuddy 的扩展生态不是从零建的，是站在开发者工具生态上长出来的**。这件事的完整含义在第 13 章展开，这里先记住它解释了一个实际好处：为 CodeBuddy 写的插件，理论上能直接在 WorkBuddy 里安装运行。

![五个插件市场与同源关系](/workbuddy-harness/fig-10.png)

*图 8-1：五个插件市场与同源关系。*

## 8.3 插件能注入什么：四类内容

一个插件包可以向你的 WorkBuddy 注入四类东西，侵入度递增。

**第一类：技能（skills）。** 一套「怎么做某事」的方法论文档，模型按需读取。最温和——技能不进系统提示词，只在被调用时进入上下文。

**第二类：智能体（agents）。** 人设提示词，专家就是这类内容的典型。注入时替代或叠加默认人格（第 6、7 章的机制）。

**第三类：规则（rules）。** 常驻约束。本机专家样本的规则文件带着这样的元数据：`alwaysApply: true`。翻译过来：**只要这个插件启用，这条规则进入你每一次对话**，不问你当时在干什么。插件规则还支持按场景注入——样本里能看到以系统提醒形式包裹的「用户已选择视频生成场景」声明，规则与场景绑定。

**第四类：MCP 与工具（mcps）。** 直接连到外部服务的通道，第 11 章专讲。

四类内容里，规则是评估插件时最要紧的一环。技能是「书架上的书」，规则是「贴在显示器上的便条」——后者永远在场。装一个带 `alwaysApply` 规则的插件，等于接受它对你全部对话的持续影响。

![插件五级注入能力的侵入度梯度](/workbuddy-harness/fig-11.png)

*图 8-2：插件五级注入能力的侵入度梯度。*

## 8.4 运行数据与生命周期

插件不只有代码，还有状态。`plugins/data/` 下每个插件一个运行数据目录（本机可见文档套件与支付插件的数据目录）；`plugins/cache/` 存各市场的已安装版本，市场更新走「下载新版到缓存、改安装指针」的路径。生命周期上，更新日志显示插件机制本身也在快速演进——5.3.5 版本条目「WorkBuddy 扩展插件 Hook」：插件可以在指定事件（如删除文件、发送消息、支付）上挂确认拦截。Hook 是四类注入之外的第五种能力：**不只影响说什么，还能影响什么被允许发生**。

## 8.5 登记条目长什么样

把安装清单的真实条目结构展开（本机样本，字段名为实测）：

```
"playwright-cli@codebuddy-plugins-official": [
  {
    "scope": "user",
    "installPath": "~/.workbuddy/plugins/cache/codebuddy-plugins-official/playwright-cli/0.1.0",
    "version": "0.1.0",
    "installedAt": "2026-08-11T02:26:23.897Z",
    "lastUpdated": "2026-08-15T05:42:41.853Z"
  }
]
```

三个阅读点。键名里的 `@` 后缀是市场标识——同一个插件名可以同时存在于多个市场，装了哪个由键名决定。值是数组，为多版本、多作用域的并存留了结构空间（本机全部是单元素）。`lastUpdated` 与 `installedAt` 分开记，配合市场的 `autoUpdate` 标志，能看出这个插件是「装完就没动」还是「天天在更新」——排查行为突变时，先看这个时间戳。

上一节的钩子（Hook）机制在这里再强调一句安全面：恶意插件的 Hook 可以把高风险操作伪装成低风险。**评估插件时，有 Hook 的要看它拦什么、放什么**。

## 8.6 供应链视角：三问一习惯

插件系统本质是一条软件供应链：市场（货源）→ 清单（目录）→ 注入（交付）。供应链的安全逻辑在这里全部适用。

评估任何插件，三问：作者是谁、可不可追溯？注入物是什么——四类内容各有哪些，`alwaysApply` 的规则写了什么？能力边界在哪——要密钥吗、连外部服务吗、装 Hook 吗？

一个习惯：装完插件，翻一眼它落到你磁盘上的实际文件（`plugins/cache/` 对应目录）。清单声称的与文件实际的是否一致，是供应链诚信的基本检查。这不是偏执——第 12 章会讲到，本地配置里明文躺着的通道令牌和模型密钥意味着什么。

## 8.7 边界

本章边界：市场与登记结构为 5.3.13 本机实测；「三层作用域」来自官方工程复盘的自述，本机只观测到用户层实例，团队层与项目层的实际形态未取得样本；插件是否有签名校验机制未观测到证据，标注为未知——不声称有，也不声称没有。生态兼容性（CodeBuddy 插件直接可用）为格式同源推断，逐插件可用性需实测。

下一章讲插件四类注入物里最普及的两类：技能与规则文件——普通用户最可能亲手写的东西。
